package com.mmall.example.singleton;

import com.mmall.annoations.NotRecommend;
import com.mmall.annoations.ThreadSafe;

/**
 * 懒汉模式下实现线程安全 -> synchronized
 * 不推荐这种写法
 * 单例实例在第一次使用的时候创建
 * Created by megan on 2018/3/22.
 */
@ThreadSafe
@NotRecommend
public class SingletonExample3 {

    /** 私有的构造函数 **/
    private SingletonExample3(){
    }

    /** 私有的构造函数 **/
    private static SingletonExample3 instance = null;

    /** 通过静态的工厂方法来获取一个单例对象 **/
    public static synchronized SingletonExample3 getInstance(){
        if(instance == null){
            instance = new SingletonExample3();
        }
        return instance;
    }

}
